g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Data is corrupt");
return G_CONVERTER_ERROR;
+ case LZMA_BUF_ERROR:
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PARTIAL_INPUT,
+ "Input buffer too small");
+ return G_CONVERTER_ERROR;
default:
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Unrecognized LZMA error");
int res;
lzma_action action;
+ if (inbuf_size != 0 && outbuf_size == 0)
+ {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NO_SPACE,
+ "Output buffer too small");
+ return G_CONVERTER_ERROR;
+ }
+
if (!self->initialized)
{
res = lzma_easy_encoder (&self->lstream, 8, LZMA_CHECK_CRC64);
OstreeLzmaDecompressor *self = OSTREE_LZMA_DECOMPRESSOR (converter);
int res;
+ if (inbuf_size != 0 && outbuf_size == 0)
+ {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NO_SPACE,
+ "Output buffer too small");
+ return G_CONVERTER_ERROR;
+ }
+
if (!self->initialized)
{
res = lzma_stream_decoder (&self->lstream, G_MAXUINT64, 0);